﻿Imports System.Data
Imports System.Web.UI

Partial Class clientes_cli_lista_clientes
    Inherits System.Web.UI.Page
    Dim objConexion As New clsConexion
    Dim objFuncion As New clsFunciones
    Const csSP As String = "sp_cli_clientes "
    Const ciOpcion As Integer = 202
    Dim vsUsuario As String



    Private Sub sLoadPage(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
        'Inicializa página
        Dim vbTieneAcceso As Boolean = False

        Me.Page.Title = ".: Administración de clients :."

        vsUsuario = Session("ss_usuario")
        panError.Visible = False
        panInformation.Visible = False

        'Verifica si el usuario tiene acceso a la opción
        If Not vsUsuario Is Nothing Then
            vbTieneAcceso = objConexion.fAccesoOpcion(vsUsuario, ciOpcion)
        End If

        vbTieneAcceso = True

        'Habilita paneles de información
        panInformacion.Visible = vbTieneAcceso
        panSinAcceso.Visible = Not vbTieneAcceso

        If vbTieneAcceso Then
            lblError.Text = ""
            If Not Page.IsPostBack Then
                sInicializa()
            End If
        Else
            ltlSinAcceso.Text = objFuncion.fsMensajeAccesoRestringido
        End If
    End Sub

    Private Sub sInicializa()
        'Inicializa datos en la página
        Try
            'Pasa parámetro de sección
            wucMenuOpciones.sCargaOpciones(2)

            ddlRegsGrid.DataBind()

            sCargaClientes(csSP & " 3,null," & IIf(txtBuscar.Text.Length = 0, "''", "'" & txtBuscar.Text & "'"))
        Catch ex As Exception
            sError("Load page: " & ex.Message)
        End Try
    End Sub
    Private Sub sError(ByVal psMensaje As String)
        panError.Visible = True
        lblError.Text = psMensaje
    End Sub
    Private Sub sNotifica(ByVal psMensaje As String)
        panInformation.Visible = True
        lblInforma.Text = psMensaje
    End Sub
    Private Sub sCargaClientes(ByVal psFiltro As String, Optional ByVal piPagina As Integer = 0)
        'Carga datos para productos
        Dim dtsDatos As Data.DataSet

        Try
            dtsDatos = objConexion.fEjecutaQueryDS(psFiltro)
            dtgSeccion.CurrentPageIndex = piPagina
            dtgSeccion.PageSize = CType(ddlRegsGrid.SelectedValue, Integer)
            dtgSeccion.DataSource = objConexion.fEjecutaQueryDS(psFiltro)
            dtgSeccion.DataBind()

            lblTotalRegs.Text = dtsDatos.Tables(0).Rows.Count()

        Catch ex As Exception
            sError("Load producto: " & ex.Message)
        End Try
    End Sub
    Private Sub sBuscar(ByVal sender As Object, ByVal e As EventArgs) Handles lnkBuscar.Click, ddlRegsGrid.SelectedIndexChanged
        sCargaClientes(csSP & " 3,null," & IIf(txtBuscar.Text.Length = 0, "''", "'" & txtBuscar.Text & "'"))
    End Sub
    Private Sub sCambiaPagina(ByVal sender As Object, ByVal e As DataGridPageChangedEventArgs) Handles dtgSeccion.PageIndexChanged
        'Toma el cambio de página para el grid

        'Envía parametro opcional (número de página)
        sCargaClientes(csSP & " 3,null," & IIf(txtBuscar.Text.Length = 0, "''", "'" & txtBuscar.Text & "'"), e.NewPageIndex)

    End Sub

    Private Sub sCreaRow(ByVal sender As Object, ByVal e As DataGridItemEventArgs) Handles dtgSeccion.ItemCreated
        'Crea el highlight
        If e.Item.ItemType = ListItemType.Item Then
            e.Item.Attributes.Add("onmouseover", "this.className='hightlighrow'")
            e.Item.Attributes.Add("onmouseout", "this.className='normalrow'")
        ElseIf e.Item.ItemType = ListItemType.AlternatingItem Then
            e.Item.Attributes.Add("onmouseover", "this.className='hightlighrowar'")
            e.Item.Attributes.Add("onmouseout", "this.className='normalrowar'")
        End If
    End Sub

    Private Sub sOpciones(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dtgSeccion.ItemCommand
        Dim vGrid As DataGrid
        Dim dtsResult As DataSet
        Dim existe As Boolean
        'Dim client As New ServiceReference1.BIServiceClient
        'Dim sat As New wsSat.ServicioWebSoapClient
        Dim firmaElectronica As String = ""
        Dim lblNitCliente As Label

        Try
            vGrid = sender 'Captura objeto grid

            Select Case e.CommandName.ToString
                Case "cmdCambiaEstado"
                    dtsResult = objConexion.fEjecutaQueryDS(csSP & " 6,'" & vsUsuario & "','" & e.CommandArgument & "'")

                    'cominicarse con la SAT

                    lblNitCliente = e.Item.FindControl("lblNitCliente")

                    '433145-1
                    ' /*esto no va comentado*/
                    'firmaElectronica = sat.Agregar_gtSat(lblNitCliente.Text)


                    'Comunicación con banco
                    If dtsResult.Tables(0).Rows.Count > 0 Then
                        'Cliente tiene tarjetas, se debe notificar a BANCO
                        For i As Integer = 0 To dtsResult.Tables(0).Rows.Count - 1

                            ' /*esto no va comentado*/
                            'existe = client.VerificarTarjeta(dtsResult.Tables(0).Rows(i).Item(0))
                            If Not existe Then
                                sError("Tarjeta " & dtsResult.Tables(0).Rows(i).Item(0) & " no existe")
                                Exit Sub
                            End If
                        Next
                    End If


                   

                    If firmaElectronica.Length > 0 Then
                        objConexion.fEjecutaQueryDS(csSP & " 5,'" & vsUsuario & "','" & e.CommandArgument & "'")
                    Else
                        sError("Error en firma electrónica")
                    End If

                    'Notificar a SAT que se inició labores con este cliente
                    ' Se necesitarían los datos del cliente


                    sCargaClientes(csSP & " 3,null," & IIf(txtBuscar.Text.Length = 0, "''", "'" & txtBuscar.Text & "'"))

                    sNotifica("Cliente autorizado exitosamente!!")
            End Select
            'sCargaDatosGrid(lblPaginaAct.Text, 10)
        Catch ex As Exception
            sError("Error command: " & ex.Message)
        End Try
    End Sub
End Class
